(:
OsmNotes: Carlos Andres Gonzalez Ramirez
Actualizar Estado De Orden Desde Un Automator Internal
Fecha Creacion: 2012/02/02
:)

declare namespace oms="urn:com:metasolv:oms:xmlapi:1";
declare namespace automator="java:oracle.communications.ordermanagement.automation.plugin.ScriptReceiverContextInvocation";
declare namespace context="java:com.mslv.oms.automation.NotificationContext"; 

declare namespace log="java:org.apache.commons.logging.Log";

declare namespace saxon="http://saxon.sf.net/";
declare namespace xsl="http://www.w3.org/1999/XSL/Transform";

declare namespace resourceBundle="java:java.util.ResourceBundle";

declare variable $automator external;
declare variable $context external;
declare variable $log external;

(: Se recuperan algunos valores de un archivo de propiedades para ponerlos en el encabezado del mensaje :)	
let $resourceBundle := resourceBundle:getBundle("cartuchoOsmNotes")
let $valorPropertiesEstadoPeticionEnviado := resourceBundle:getString($resourceBundle,"osm.notes.estado_peticion.enviado")

(: Se asigna el contenido completo del task data a una variable:)
let $order := /oms:GetOrder.Response
(: Se asigna el numero de orden a una variable:)
let $idOrden := $order/oms:OrderID

let $taskDataXml := saxon:serialize($order, <xsl:output method='xml' omit-xml-declaration='yes' indent='yes' saxon:indent-spaces='4'/>)

return 
(
(: Imprimo la variable donde almacene el xml que esta ingresando a la tarea :)
log:info($log, fn:concat('OsmNotes Log Message: OrderId[', /oms:GetOrder.Response/oms:OrderID, '] taskDataXml[', $taskDataXml, ']')),
(: Se habilita la opcion de actualizar la orden desde el Xquery :)
automator:setUpdateOrder($automator,"true"),
(: Se crea el xml para actualizar los datos de la orden :)
<OrderDataUpdate xmlns="http://www.metasolv.com/OMS/OrderDataUpdate/2002/10/25">
	<Add path="/InformacionGestionIntercambios/InformacionIntercambiosInventario">
			<InformacionIntercambioInventario>
				<IdPeticionInventario>{$idOrden/text()}</IdPeticionInventario>
				<EstadoPeticionInventario>{$valorPropertiesEstadoPeticionEnviado}</EstadoPeticionInventario>
			</InformacionIntercambioInventario>
	</Add>
</OrderDataUpdate>
)